using System.Collections.Generic;
using System.Threading;

namespace LP
{
    public sealed class CancleTokenMgr : AbsMgr
    {
        private List<ICancleTokener> cancleTokens = new List<ICancleTokener>();

        public override void OnDestroy()
        {
            cancleTokens.Clear();
            base.OnDestroy();
        }

        public void AttachCancleTokener(ICancleTokener cancleToken)
        {
            if (!cancleTokens.Contains(cancleToken))
            {
                cancleTokens.Add(cancleToken);
            }
        }

        public void OnCancleTokenNotify()
        {
            foreach (var item in cancleTokens)
            {
                item?.OnCancleToken();
            }
        }
    }
}